#!/usr/bin/env python
"""
Script that imports locally stored data as a new dataset for the user
Usage: import id outputfile
"""
from __future__ import print_function

import os
import sys

assert sys.version_info[:2] >= (2, 6)

BUFFER = 1048576

dataid = sys.argv[1]
out_name = sys.argv[2]


id2name = {
    'eryth'         : 'ErythPreCRMmm3_cusTrk.txt',
    'cishg16'       : 'ReglRegHBBhg16CusTrk.txt',
    'cishg17'       : 'ReglRegHBBhg17CusTrk.txt',
    'exons'         : 'ExonsKnownGenes_mm3.txt',
    'krhg16'        : 'known_regulatory_hg16.bed',
    'krhg17'        : 'known_regulatory_hg17.bed',
    'tARhg16mmc'    : 'hg16.mouse.t_AR.cold.bed',
    'tARhg16mmm'    : 'hg16.mouse.t_AR.medium.bed',
    'tARhg16mmh'    : 'hg16.mouse.t_AR.hot.bed',
    'tARhg16rnc'    : 'hg16.rat.t_AR.cold.bed',
    'tARhg16rnm'    : 'hg16.rat.t_AR.medium.bed',
    'tARhg16rnh'    : 'hg16.rat.t_AR.hot.bed',
    'phastConsHg16' : 'phastConsMost_hg16.bed',
    'omimhg16'      : 'omimDisorders_hg16.tab',
    'omimhg17'      : 'omimDisorders_hg17.tab',
}

fname = id2name.get(dataid, '')
if not fname:
    print('Importing invalid data %s' % dataid)
    sys.exit()
else:
    print('Imported %s' % fname)

# this path is hardcoded
inp_name = os.path.join('database', 'import', fname)

try:
    inp = open(inp_name, 'rt')
except Exception:
    print('Could not find file %s' % inp_name)
    sys.exit()

out = open(out_name, 'wt')

while 1:
    data = inp.read(BUFFER)
    if not data:
        break
    out.write(data)

inp.close()
out.close()
